Present invention relates to web services, and more particularly relates to an architecture based on a distributed computing platform capable of arbiting dynamic availability of eCommerce services through a web browser.
Most services and pages available through the World Wide Web (WWW) today are accessed using the hypertext transfer protocol (http), which is a request/response protocol that defines how messages are formatted and transmitted and what actions web servers and browsers should take in response to various commands. The client browser typically requests access to a web site of a service provider by entering its URL, which provider responds by sending a set of instructions to the client which defines the service provider web page.
That is, the service provider responds by transmitting information for residence on the client browser (typically in the form of a client applet). The downloaded information, however, is static, i.e., any updates or changes must be provided by the service provider (end device) to the client in another information transfer and at the client's request for the http protocol.
Traditional distributed computer systems provide limited mechanisms for dynamically updating information in a user's browser window when connected to a service provider. When service offerings (“any exchange of information, on-line products, or services between a provider and an end user”) change, or even when particular features of a service changes, a client may not see these changes due to a phenomenon known as browser caching.
More particularly, because data from a servlet sent from the service provider is “cached” in user's browser, it is not automatically updated with “new” service information when new services become available. The client, therefore, may be operating with obsolete data or an outdated service in the distributed computer system. More importantly, new services provided by the end device (service provider) are not to be visible (accessible) to the user until the page in the client's machine is reloaded via their web connection. In the fast-paced, ever changing world of electronic commerce, this is a crucial failing in systems today.
While traditional request/response interactions via the Internet are limited as described, the same limitations are found in an Intranet environment. In an effort to overcome such Intranet limitation, a software program or distributed computing platform, Jini™, by Sun Microsystems, has recently been implemented to simplify the network connection and sharing of services, i.e., printers, disc drives, etc. The Jini™ distributed computing platform performs Intranet tasks such as event notification, service registration, and dynamic downloading of software. Jini™ obviates the need, as in a conventional Java environment, for a user (client) to request a stub code update.
Jini™ is a distributed computing system which includes a connection technology that enables devices (of source providers) to plug and play together on a network. No driver or interface is needed on a client-based machine to run Jini™-controlled devices (that is, utilize any Jini™-based network service provider). The Jini™ system is Java-centric, assuming and requiring that communications between clients and services use a Java interface (RMI).
Such a Jini™-based network is shown in applicant's prior art FIG. 1. Therein, a client (User 1 or User 2) first locates which network service 110 it wishes to access using Jini's™ lookup server 100. The look-up server accesses a registry/locate service therein to determine user accessability. If accessible, the service provider interface is copied from the Jini™ lookup server 100 to the requesting user (client) where it will be used (e.g., Jini™ enabled devices 120). To do so, the Jini™ look-up server 100 prepares and passes snippets of code (which can be thought of as “device drivers” or client stubs) to the requesting client.
Every Jini™-enabled service (110 or 120) registers this driver with the lookup server when the service is initially made available. The lookup server provides any user client with the stub so that the client can directly access the service. Jini™ coordinates all devices/services to work together on demand in accordance with the code provided by the look-up server 100.
Once the network connection is made between user and device, the Jini™ lookup server 100 is not involved in subsequent transactions between that client (User 1 or User 2) and that network service (110 or 120). For example the client and end service device 120 would communicate directly after connected via Jini™. Jini™ provides everything needed by the client to utilize an Intranet end device 120 or service provider. Any computer that runs Java is able to access the data that passes among devices via Jini™.
Jini™ technology not only defines a set of protocols for discovery, join, and lookup, but also leasing and transaction mechanisms to provide resilience in a dynamic networked environment. Jini™ operates by exploiting the Java environment, with its portable byte code, dynamic downloading, and polymorphic object-oriented properties, essentially creating a distributed system (network). With the single, uniform Java environment, Jini™ allows code to be dynamically loaded into a running process irrespective of the underlying processor or operating system, exploiting the protocol-centric nature of distributed networks.
The Jini™ connection platform requires only that services 110 and devices 120 wishing to participate in the Federation or djinn (hardware or software) register at the Jini™ lookup service (and keep that registration alive through the renewal of leases). And while Jini™ has been proven to be beneficial in sharing resources in a Jini™-based network, no such system, with similar function and/or operation is known to exist for application outside of an Intranet world. For example, a mechanism where a client browser could be automatically updated by an Internet-based equivalent to a Jini™ look-up service via the net, by, for example, an eCommerce web server, would greatly enhance the web server's ability to communicate and/or interact with said web server.